/**
 * FEBS系统的主应用程序类
 * 这是整个应用程序的入口点
 */
package cc.mrbird.febs;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * @SpringBootApplication: Spring Boot的主配置注解，包含了以下功能：
 * 1. @Configuration: 标明该类是配置类
 * 2. @EnableAutoConfiguration: 启用Spring Boot的自动配置机制
 * 3. @ComponentScan: 启用组件扫描，自动扫描当前包及其子包下的所有Spring组件
 * 
 * @EnableTransactionManagement: 启用Spring的事务管理功能，支持@Transactional注解
 * 
 * @EnableScheduling: 启用定时任务调度功能，支持@Scheduled注解
 * 
 * @EnableAsync: 启用异步方法执行功能，支持@Async注解
 */
@SpringBootApplication
@EnableTransactionManagement
@EnableScheduling
@EnableAsync
public class FebsApplication {

    /**
     * 应用程序的入口方法
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 使用SpringApplicationBuilder构建并运行Spring Boot应用
        // 这种方式比直接使用SpringApplication.run()更灵活，可以进行更多自定义配置
        new SpringApplicationBuilder(FebsApplication.class)
                .run(args);
    }
}
